---
title: 从 Pelican 迁移
description: 从一个现有的 Pelican 项目迁移到 Astro 的方法
type: migration
stub: true
framework: Pelican
i18nReady: true
---

import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'

[Pelican](https://getpelican.com) 是一个开源的使用 Python 构建的静态网站生成器。

## Pelican 与 Astro 的主要相似点

Pelican 和 Astro 的一些相似点会帮助你完成迁移。

- Pelican 和 Astro 都是静态网站生成器，尤其适合[内容驱动的网站](/zh-cn/concepts/why-astro/#内容驱动)，例如博客。

- Pelican 和 Astro 都内置支持 [Markdown文档](/zh-cn/guides/content/#markdown-创作)，包括页面元数据的 frontmatter YAML 属性。但是 Astro 中预留的 frontmatter 比 Pelican 少得多。尽管很多 Pelican 内生效的 frontmatter 属性在 Astro 中并不会生效，但你仍然可以使用使用 Markdown 和 frontmatter 。

## Pelican 与 Astro 的主要差异点

当使用 Astro 重新构建 Pelican 网站时，你会注意到一些重要的差异。

- Pelican 支持 Markdown 和 reStructured Text(`.rst`)。Astro 可以[从 Markdown 和 MDX 文件创建页面](/zh-cn/guides/markdown-content/)，但是不支持 reStructured Text。

- Pelican 使用 HTML 格式和 Jinja 语法创建模板，而[Astro 语法](/zh-cn/basics/astro-components/)是一个类似于 JSX 的 HTML 超集，也就是说任何的 HTML 都符合 Astro 语法规则。

- Pelican 为构建内容丰富的网站而设计，例如博客，它的博客特性 Astro 是不提供的，你必须自己构建。但是，Astro 也会提供一些特性包括[官方博客主题](https://github.com/withastro/astro/tree/latest/examples/blog)。

## 从 Pelican 迁移到 Astro 的步骤

为了将 Pelican 文档转换成 Astro，你可以从我们的 [Starlight 文档主题模板](https://starlight.astro.build)开始，或者从[主题展示](https://astro.build/themes/)里面的社区主题开始。

你可以通过传入`--template`参数到`create astro`命令开启一个 Astro 项目，并选择我们提供的某个模板。或者，你也可以从一个 [Astro Github 仓库](/zh-cn/install/auto/#入门模板)开始你的项目。

  <PackageManagerTabs>
    <Fragment slot="npm">
    ```shell
    npm create astro@latest -- --template starlight
    ```
    </Fragment>
    <Fragment slot="pnpm">
    ```shell
    pnpm create astro@latest --template starlight
    ```
    </Fragment>
    <Fragment slot="yarn">
    ```shell
    yarn create astro --template starlight
    ```
    </Fragment>
  </PackageManagerTabs>

导入你现有的 Markdown 文档[创建 Markdown 页面](/zh-cn/guides/markdown-content/)。你可以将Pelican `content/`文件夹中的文档复制到 Astro 中的 `src/pages/` 文件夹，从而开启基于文件的路由。你或许会想阅读 [Astro 项目结构](/zh-cn/basics/project-structure/)去了解什么文件应该放置于什么位置。

Pelican 会帮你处理网站的布局和元数据。你或许会想阅读[创建 Astro 布局封装 Markdown](/zh-cn/basics/layouts/#markdownmdx-布局) 从而了解如何在 Astro 中自己管理模板，包括页面的`<head>`。

为了迁移其他类型的网站，例如一个作品集或者一个博客，请进入 [astro.new](https://astro.new) 查看更多的网站模板，你会找到模板对应的 GitHub 仓库链接和在线开发环境链接(StackBlitz, CodeSandbox and Gitpod)。

## 社区资源

- 添加你自己的！
